

class User extends Avalon.VM{
    $id='User';
    name_input='';
    password_input='';
    loginInput={
        NID:'',
        PWD:''
    };
    //查询、
    AllData={};//所有查询的数据用户
    pageData={};
    tableLayer ='';
    searchName='';
    searchID='';
    searchLayer='';
    searchMajor='';
    searchUser=function () {
        // alert(UserVM.searchName);
        let searchData={};
        if(UserVM.searchID=="" && UserVM.searchName==""){
            searchData={};
        }else if(UserVM.searchID==""){
            searchData={Name:UserVM.searchName};
        }else if(UserVM.searchName==""){
            searchData={NID:UserVM.searchID};
        }else{
            searchData = {Name:UserVM.searchName,NID:UserVM.searchID}
        }
        // if(UserVM.searchLayer!=""&&UserVM.searchMajor!=""){
        //     Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{Name:UserVM.searchLayer}},function (data2) {
        //         // searchData = {CID: data2.L[0].CID};
        //         Castle.Request.post(Config.getRequestUrl('Major','search'),{W:{ZName:UserVM.searchLayer}},function (data3) {
        //             searchData = {CID: data2.L[0].CID,ZID:data3.L[0].ZID};
        //         },function (err) {
        //             alert(err);
        //         });
        //     },function (err) {
        //     alert(err );
        // });
        // }
        Castle.Request.post(Config.getRequestUrl('User','search'),{W:searchData},function (data) {
            for (let i=0;i<data.L.length;i++){
               let temp = data.L[i].CID;
                Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{CID:data.L[i].CID}},function (data1) {
                    data.L[i].CID = data1.L[0].Name;
                    for(let j = i+1;j<data.L.length;j++){
                        if(data.L[j].CID == temp){
                            data.L[j].CID = data.L[i].CID;
                        }
                    }
                },function (err) {
                    alert(err );
                });
                data.L[i].Status = TransStatus(data.L[i].Status);
            }
            // UserVM.searchLayer='';
            // UserVM.searchMajor='';
           UserVM.AllData = data.L;
           console.log(data);
        },function (err) {
            alert(err );
        });

    };
    //分页
    // pagenum = UserVM.AllData.length/10;


    //根据层次查询用户列表

    // searchMajor='';
    layerUser = function(){
        let searchData = {};
        Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{Name:UserVM.searchLayer}},function (data2) {
           searchData = {CID:data2.L[0].CID};
            Castle.Request.post(Config.getRequestUrl('User','search'),{W:searchData},function (data) {
                for (let i=0;i<data.L.length;i++){
                    let temp = data.L[i].CID;
                    Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{CID:data.L[i].CID}},function (data1) {
                        data.L[i].CID = data1.L[0].Name;
                        for(let j = i+1;j<data.L.length;j++){
                            if(data.L[j].CID == temp){
                                data.L[j].CID = data.L[i].CID;
                            }
                        }
                    },function (err) {
                        alert(err );
                    });
                    data.L[i].Status = TransStatus(data.L[i].Status);
                }
                UserVM.AllData = data.L;
                // console.log(data);
            },function (err) {
                alert(err );
            });
        },function (err) {
            console.log(err);
        });
};
    //根据专业查询用户列表
    // searchLayer='';

    MajorUser = function(){
        let searchData = {};
        // if(UserVM.searchLayer==""){
            Castle.Request.post(Config.getRequestUrl('Major','search'),{W:{ZName:UserVM.searchMajor}},function (data2) {
                searchData = {ZID:data2.L[0].ZID};
                Castle.Request.post(Config.getRequestUrl('User','search'),{W:searchData},function (data) {
                    for (let i=0;i<data.L.length;i++){
                        let temp = data.L[i].CID;
                        Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{CID:data.L[i].CID}},function (data1) {
                            data.L[i].CID = data1.L[0].Name;
                            for(let j = i+1;j<data.L.length;j++){
                                if(data.L[j].CID == temp){
                                    data.L[j].CID = data.L[i].CID;
                                }
                            }
                        },function (err) {
                            alert(err );
                        });
                        data.L[i].Status = TransStatus(data.L[i].Status);
                    }
                    UserVM.AllData = data.L;
                    // console.log(data);
                },function (err) {
                    alert(err );
                });
            },function (err) {
                console.log(err);
            });
        // }
    };

    login=function () {
        //TODO 数据验证
        UserVM.loginInput.NID = UserVM.name_input;
        UserVM.loginInput.PWD = UserVM.password_input;
        Castle.Request.post(Config.getRequestUrl('User','login'),UserVM.loginInput,function (data) {
            alert("登陆成功");
            window.location.href = '../../admin.html';
            console.log(data);
        },function (err) {
            // console.log(err);
            alert(err );

        })
    };


    registname='';
    registpass='';
    registrepass='';
    registId='';
    registlayer='';
    registmajor='';
    registrole='';
    registInput={
        Name:'',
        PWD:'',
        REPWD:'',
        NID:'',
        CID:'',
        ZID:'',
        QID:'',
    };
    // isClick = false;//判断是否点击审核按钮
    regist=function () {
        //TODO 数据验证
        UserVM.registInput.Name = UserVM.registname;
        UserVM.registInput.PWD = UserVM.registpass;
        UserVM.registInput.REPWD = UserVM.registpass;
        UserVM.registInput.NID = UserVM.registId;
        UserVM.registInput.CID = Translayername(UserVM.registlayer);
        UserVM.registInput.ZID = Transmajorname(UserVM.registmajor);
        UserVM.registInput.QID = Transrolename(UserVM.registrole);
        Castle.Request.post(Config.getRequestUrl('User','register'),UserVM.registInput,function (data) {
                alert("注册成功");
                window.location.href = './User_Login.html';
                console.log(data);

        },function (err) {
            // console.log(err);
            alert(err);

        })
    };

    //添加用户
    addInput={Name:'', PWD:'123456', NID:'', CID:'', ZID:'', QID:''};
    addUser=function () {
        //TODO 数据验证
        UserVM.addInput.Name = UserVM.registname;
        UserVM.addInput.NID = UserVM.registId;
        UserVM.addInput.CID = Translayername(UserVM.registlayer);
        UserVM.addInput.ZID = Transmajorname(UserVM.registmajor);
        UserVM.addInput.QID = Transrolename(UserVM.registrole);
        Castle.Request.post(Config.getRequestUrl('User','add'),UserVM.addInput,function (data) {
            alert("添加成功");
            location.reload(this);
            // goto('User','List',0)
            // window.location.href = './User_List.html'
            console.log(data);
        },function (err) {
            // console.log(err);
            alert(err);

        });
        // console.log(editdata);
    };

    // 批量添加
    addbatch=function () {
        // @Type="List";
        // goto('User','List',0,'User');
    };

    // editdata={};//存放该行数据的数组
    //编辑页面变量
    editname="";
    editpass="";
    editId="";
    editlayer="";
    editmajor="";
    editrole="";
    editUID="";
    //查询数据库中所有层次
    layer={};
    layerfn=function () {
        Castle.Request.post(Config.getRequestUrl('Level','search'),{},function (data) {
            // console.log(data.L);
            UserVM.layer = data.L;
        },function (err) {
            console.log(err);
        })
    };
//查询数据库中所有专业
    major={};
    majorfn=function () {
       // let majorall={}
        Castle.Request.post(Config.getRequestUrl('Major','search'),{},function (data) {
            console.log(data.L);
            // for(let i=1;i<data.L.length;i++){
            //     UserVM.major[i] = data.L[i];
            // }
            UserVM.major = data.L;
        },function (err) {
            console.log(err);
        })
    }


}
let UserVM = avalon.define(new User());

// function LayerToId(name){
//     let layerID ;
//         Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{Name:name}},function (data) {
//             layerID = data.L[0].CID;
//             console.log(layerID);
//             // return layerID;
//         },function (err) {
//             console.log(err);
//         });
//         // console.log(layerID);
//     setTimeout("return layerID",1000);
//         // return layerID;
// }

//判断审核是否点击
// function isclick() {
//     UserVM.isClick = true;
// }
//删除用户和行
function delet(obj) {
    let str = obj.parentNode.parentNode;
    let tbody = str.parentNode;
    let num =getRowNo(obj);
    num = num +1;
    let delettable :HTMLTableElement;
        this.delettable = document.getElementById("userTable");
    let value = this.delettable.rows[num].cells[1].innerHTML;
    Castle.Request.post(Config.getRequestUrl('User','del'),{UID:value},function (data) {
        // alert(data.L);
        // location.reload(this);
        // window.location.href = './User_List.html'
        console.log(data);
    },function (err) {
        console.log(err);
        // alert(err);

    });
    tbody.removeChild(str);
}
//获取行对象
function getRowObj(obj)
{

    while(obj.tagName.toLowerCase() !== "tr")
    {    obj = obj.parentNode;
        if(obj.tagName.toLowerCase() === "table")
            return null;
    }
    return obj;
}
//获取行号
function getRowNo(obj)
{
    let trObj =getRowObj(obj);
    let trArr = trObj.parentNode.children;
    for(let trNo= 0; trNo < trArr.length; trNo++)
    {  if(trObj === trObj.parentNode.children[trNo])
    {    return trNo; }
    }
}
// let editdata={};//存放该行数据的数组
// var editdata={};
//编辑，获取该行的身份证号
function editfun(obj) {
    let num =getRowNo(obj);
    num = num +1;
    let edittable :HTMLTableElement;
    this.edittable = document.getElementById("userTable");
    let value = this.edittable.rows[num].cells[1].innerHTML;
    Castle.Request.post(Config.getRequestUrl('User','get'),{UID:value},function (data) {
        console.log(data);
        // editdata = data;
        // console.log(editdata);
        UserVM.editname=data.Name;
        UserVM.editpass = data.PWD;
        UserVM.editId = data.NID;
        UserVM.editlayer = Translayer(data.CID);
        UserVM.editmajor = Transmajor(data.ZID);
        UserVM.editrole = Transrole(data.QID);
        UserVM.editUID = data.UID;
    },function (err) {
        console.log(err);
        // alert(err);

    })
}

//更新资料
 function update() {
    // alert(UserVM.editUID);
     let updatedata={UID:UserVM.editUID,Params:{Name:UserVM.editname,PWD:UserVM.editpass,
        // NID:UserVM.editId,
        CID:Translayername(UserVM.editlayer),
        ZID:Transmajorname(UserVM.editmajor), QID:Transrolename(UserVM.editrole)}};
    Castle.Request.post(Config.getRequestUrl('User','save'),updatedata,function (data) {
        alert("更新成功");
        location.reload(this);
        console.log(data);
    },function (err) {
        console.log(err)
    })
}
//加载Table内容
window.onload = function () {
    Castle.Request.post(Config.getRequestUrl('User','search'),{},function (data) {
        for (let i=0;i<data.L.length;i++){
            let temp = data.L[i].CID;
            Castle.Request.post(Config.getRequestUrl('Level','search'),{W:{CID:data.L[i].CID}},function (data1) {
                data.L[i].CID = data1.L[0].Name;
                for(let j = i+1;j<data.L.length;j++){
                    if(data.L[j].CID == temp){
                        data.L[j].CID = data.L[i].CID;
                    }
                }
            },function (err) {
                alert(err );
            });
            data.L[i].Status = TransStatus(data.L[i].Status);
        }
        UserVM.AllData = data.L;
        console.log(data);
    },function (err) {
        alert(err );
    });

};

//审核
function auditfun(obj) {
    let num =getRowNo(obj);
    num = num +1;
    let indextable :HTMLTableElement;
    this.indextable = document.getElementById("userTable");
    let index = this.indextable.rows[num].cells[1].innerHTML;
    let audittable :HTMLTableElement;
    this.audittable = document.getElementById("userTable");
    let value = this.audittable.rows[num].cells[7].innerHTML;
    value = TransStatusName(value);
    // alert(index + "  "+ value);
    if(value == 0) {
        value =1;
        let auditedtable :HTMLTableElement;
        this.auditedtable = document.getElementById("userTable");
        this.auditedtable.rows[num].cells[7].innerHTML = "已审核";
    }
    else {
        value = 0;
        let auditingtable :HTMLTableElement;
        this.auditingtable = document.getElementById("userTable");
        this.auditingtable.rows[num].cells[7].innerHTML = "未审核";
    }
    Castle.Request.post(Config.getRequestUrl('User','save'),{UID:index,Params:{Status:value}},function (data) {
        console.log(data);
    },function (err) {
        console.log(err);
    })
}



function Translayer(CID){
    if(CID == 2) return "本科";
    else if (CID==3) return "专科";
}
function Transmajor(ZID){
    if (ZID ==2) return "软件工程";
   else if(ZID==3) return "计算机科学与技术";
   else if(ZID==4) return "信息安全";
}
function Transrole(QID){
    if (QID==1) return "管理员";
    else if(QID==2) return "教师";
    else return "学生";
}
function Translayername(name){
    if(name == "本科") return 2;
    else if (name=="专科") return 3;
}
function Transmajorname(name){
    if (name =="软件工程") return 2;
    else if(name=="计算机科学与技术") return 3;
}
function Transrolename(name){
    if (name=="管理员") return 1;
    else if(name=="教师") return 2;
    else return 3;
}
function TransStatus(id){
    if(id==1){
        // document.getElementById("auditbtn").style.color = "red";
        return "已审核";
    }
    else return "未审核";
}
function TransStatusName(name){
    if(name=="已审核") return 1;
    else return 0;

}

// //分页
// function pagefn(){
//     let pageSize = 15;    //每页显示的记录条数
//     let curPage=0;        //当前页
//     let lastPage;        //最后页
//     let direct=0;        //方向
//     let len;            //总行数
//     let page;            //总页数
//     let begin;
//     let end;
//
//
//     $(document).ready(function display(){
//         len =$("#mytable tr").length - 1;    // 求这个表的总行数，剔除第一行介绍
//         page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根据记录条数，计算页数
//         // alert("page==="+page);
//         curPage=1;    // 设置当前为第一页
//         displayPage(1);//显示第一页
//
//         document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页    每页 ";    // 显示当前多少页
//         document.getElementById("sjzl").innerHTML="数据总量 " + len + "";        // 显示数据量
//         document.getElementById("pageSize").value = pageSize;
//
//
//
//         $("#btn1").click(function firstPage(){    // 首页
//             curPage=1;
//             direct = 0;
//             displayPage();
//         });
//         $("#btn2").click(function frontPage(){    // 上一页
//             direct=-1;
//             displayPage();
//         });
//         $("#btn3").click(function nextPage(){    // 下一页
//             direct=1;
//             displayPage();
//         });
//         $("#btn4").click(function lastPage(){    // 尾页
//             curPage=page;
//             direct = 0;
//             displayPage();
//         });
//         $("#btn5").click(function changePage(){    // 转页
//             curPage=document.getElementById("changePage").value * 1;
//             if (!/^[1-9]\d*$/.test(curPage)) {
//                 alert("请输入正整数");
//                 return ;
//             }
//             if (curPage > page) {
//                 alert("超出数据页面");
//                 return ;
//             }
//             direct = 0;
//             displayPage();
//         });
//
//
//         $("#pageSizeSet").click(function setPageSize(){    // 设置每页显示多少条记录
//             pageSize = document.getElementById("pageSize").value;    //每页显示的记录条数
//             if (!/^[1-9]\d*$/.test(pageSize)) {
//                 alert("请输入正整数");
//                 return ;
//             }
//             len =$("#mytable tr").length - 1;
//             page=len % pageSize==0 ? len/pageSize : Math.floor(len/pageSize)+1;//根据记录条数，计算页数
//             curPage=1;        //当前页
//             direct=0;        //方向
//             firstPage();
//         });
//     });
//
//     function displayPage(){
//         if(curPage <=1 && direct==-1){
//             direct=0;
//             alert("已经是第一页了");
//             return;
//         } else if (curPage >= page && direct==1) {
//             direct=0;
//             alert("已经是最后一页了");
//             return ;
//         }
//
//         lastPage = curPage;
//
//         // 修复当len=1时，curPage计算得0的bug
//         if (len > pageSize) {
//             curPage = ((curPage + direct + len) % len);
//         } else {
//             curPage = 1;
//         }
//
//
//         document.getElementById("btn0").innerHTML="当前 " + curPage + "/" + page + " 页    每页 ";        // 显示当前多少页
//
//         begin=(curPage-1)*pageSize + 1;// 起始记录号
//         end = begin + 1*pageSize - 1;    // 末尾记录号
//
//
//         if(end > len ) end=len;
//         $("#mytable tr").hide();    // 首先，设置这行为隐藏
//         $("#mytable tr").each(function(i){    // 然后，通过条件判断决定本行是否恢复显示
//             if((i>=begin && i<=end) || i==0 )//显示begin<=x<=end的记录
//                 $(this).show();
//         });
//     }
// }
